Correct Code Containing Containers
نویسندگان
چکیده
For critical software development, containers such as lists, vectors, sets or maps are an attractive alternative to ad-hoc data structures based on pointers. As standards like DO-178C put formal verification and testing on an equal footing, it is important to give users the ability to apply both to the verification of code using containers. In this paper, we present a definition of containers whose aim is to facilitate their use in certified software, using modern proof technology and novel specification languages. Correct usage of containers and user-provided correctness properties can be checked either by execution during testing or by formal proof with an automatic prover. We present a formal semantics for containers and an axiomatization of this semantics targeted at automatic provers. We have proved in Coq that the formal semantics is consistent and that the axiomatization thereof is correct.
منابع مشابه
Light-weight containers for Isabelle: efficient, extensible, nestable pdfauthor
In Isabelle/HOL, we develop an approach to efficiently implement container types such as sets and maps in generated code. Thanks to type classes and refinement during code generation, our light-weight framework is flexible, extensible, and easy to use. To support arbitrary nesting of containers, we devise an efficient linear order on sets that can even compare complements and non-complements. O...
متن کاملLight-Weight Containers for Isabelle: Efficient, Extensible, Nestable
In Isabelle/HOL, we develop an approach to efficiently implement container types such as sets and maps in generated code. Thanks to type classes and refinement during code generation, our light-weight framework is flexible, extensible, and easy to use. To support arbitrary nesting of containers, we devise an efficient linear order on sets that can even compare complements and non-complements. O...
متن کاملIdiomatic and Reproducible Software Builds using Containers for Reliable Computing
Containers as the unit of application delivery are the ‘next big thing’ in the software development world. They enable developers to create an executable image containing an application bundled with all its dependencies which a user can run inside a controlled environment with virtualized resources. Complex workflows for business-critical applications and research environments require a high de...
متن کاملLight-weight Containers
This development provides a framework for container types like sets and maps such that generated code implements these containers with different (efficient) data structures. Thanks to type classes and refinement during code generation, this light-weight approach can seamlessly replace Isabelle’s default setup for code generation. Heuristics automatically pick one of the available data structure...
متن کاملDetection and Determination of some Migrated Chemicals from Plastic Containers into Different Drinks and Liquids Using Dispersive Liquid-liquid Microextraction Prior to Gas Chromatography
Migration of chemicals from plastic containers into drinks and liquids containing them, is supposed to be a hazardous phenomenon and results in many health problems. Sample preparation is of great importance due to trace amounts analysis of these compounds. In this research, dispersive liquid–liquid microextraction is applied for the extraction and preconcentration of the migrated compounds pri...
متن کامل